package com.llbnk.quartz;

import com.llbnk.logclean.CleanManager;
import com.llbnk.util.SpringContextJobUtil;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
 * @author llbnk
 * @create 2022-11-01 8:47
 * 日志清理 定时任务
 */
@Slf4j
public class LogCleanJob implements Job  {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        log.debug("Log Clean Quartz execute start . . . . . . .");

        // TODO 业务逻辑
        /**
         * 通过 自定义工具类 获取Spring容器中的实例bean
         * 在quartz框架中，Job是通过反射出来的实例，不受spring的管理，即使使用@Component注解，
         * 将其标记为组件类，它也不会被注册到容器中，所以就无法直接通过自动注入IOC容器中的对象等
         */

        CleanManager cleanManager = (CleanManager) SpringContextJobUtil.getBean("cleanManager");
        // 进行日志清理
        cleanManager.cleanLogStart();

        log.debug("Log Clean Quartz execute end . . . . . . . .");

    }
}
